#ifndef __HISI_DEC_ENC_CTRL_H__
#define __HISI_DEC_ENC_CTRL_H__


#ifdef __cplusplus
#if __cplusplus
extern "C"{
#endif
#endif /* Begin of #ifdef __cplusplus */


typedef enum HISIDECVPSSOUT
{
    HISIDECENCCTRL_ENPAYLOAD,
    HISIDECENCCTRL_ENSIZE,
    HISIDECENCCTRL_U32GOP,
    HISIDECENCCTRL_U32FRAMERATE,
    HISIDECENCCTRL_U32BITRATE,
    HISIDECENCCTRL_ENRCMODE,
    HISIDECENCCTRL_ENDECMODE,
    HISIDECENCCTRL_NUM
}hisiDecVpssOut_def;


typedef struct
{
    const char *task_name;
    int *config_done;
    int enVoMode;      
}hisiDecEncCtrl_static_params;


typedef struct
{
    int enPayLoad;        /**< enc codec type, see #PAYLOAD_TYPE_E*/
    int enSize;           /**< enc resolution, see#PIC_SIZE_E*/
    int u32Gop;           /**< this gop_len*/
    int u32FrameRate;     /**< fps*/
    int u32BitRate;       /**< just bitrate*/
    int enRcMode;         /**< rc mode, 码率控制，see#SAMPLE_RC_E*/
    int enDecMode;        /**< see#VIDEO_DEC_MODE_E*/
}hisiDecEncCtrl_dynamic_params;


typedef void *hisiDecEncCtrl_handle;


extern const hisiDecEncCtrl_static_params glb_hisiDecEncCtrl_static_params_default;
extern const hisiDecEncCtrl_dynamic_params glb_hisiDecEncCtrl_dynamic_params_default;

hisiDecEncCtrl_handle hisiDecEncCtrl_create(hisiDecEncCtrl_static_params *static_params,
                                                      hisiDecEncCtrl_dynamic_params *dynamic_params);



#ifdef __cplusplus
#if __cplusplus
}
#endif
#endif /* End of #ifdef __cplusplus */


#endif /* End of #ifndef __HISI_DEC_ENC_CTRL_H__ */


/*_*/

